package ar.edu.utn.frgp.banco.service.impl;

import java.util.ArrayList;
import java.util.List;



import ar.edu.utn.frgp.banco.dao.PrestamosDao;



import ar.edu.utn.frgp.banco.dao.impl.PrestamosDaoImpl;




import ar.edu.utn.frgp.banco.domain.Prestamo;


import ar.edu.utn.frgp.banco.exceptions.DataAccessException;
import ar.edu.utn.frgp.banco.exceptions.ServiceException;


import ar.edu.utn.frgp.banco.service.RecursoServicePrestamos;


public class RecursoServicePrestamosImpl implements RecursoServicePrestamos{
	
	private PrestamosDao prestamosDao;
	
	
	
	public RecursoServicePrestamosImpl() { 
		setPrestamosDao(new PrestamosDaoImpl());
		
	}
	
	public void setPrestamosDao(PrestamosDao prestamosDao) {
		this.prestamosDao = prestamosDao;
	}


	public PrestamosDao getPrestamosDao() {
		return prestamosDao;
	}
	
	

	
	
		

public void registrarPrestamo(Prestamo regMovimiento) throws ServiceException {
		
	
	try {
		prestamosDao.altaPrestamo(regMovimiento);
	} catch (DataAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
		
				
	}



public List<Prestamo> listarPrestamos() throws ServiceException {
	List<Prestamo> prestamos = new ArrayList<Prestamo>();
	try {
		
		prestamos = prestamosDao.traerTodosLosPrestamos();
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return prestamos;
}


public List<Prestamo> listarPrestamosPorCliente(int dni) throws ServiceException {
	List<Prestamo> prestamos = new ArrayList<Prestamo>();
	try {
		
		prestamos = prestamosDao.traerTodosLosPrestamosDelCliente(dni);
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return prestamos;
}

public Prestamo listarPrestamosPorCodigo(int nroPrestamo) throws ServiceException {
	Prestamo prestamo = new Prestamo();
	try {
		
		prestamo = prestamosDao.traerElPrestamo(nroPrestamo);
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return prestamo;
}


public void cerrarPrestamo(int idprestamo) throws ServiceException {
	
	try {
		prestamosDao.actualizarEstado(idprestamo);
	} catch (DataAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	
}



























	
	
}
